#ifndef IMAGE_H
#define IMAGE_H

#include "Troll3D_global.h"
#include <GL/glew.h>

/*! @brief The image class is used to store an image and eventually pass it to shaders
 */
class TROLL3DSHARED_EXPORT Image
{
    private:

    public :
    /********************************
    /*          Properties
    /********************************/

        /********************************
        /*          Members
        /********************************/

           // sf::Image       m_Image;

            GLuint          m_TextureId;

            bool            m_Init;

            /*float           m_OffsetX;
            float           m_OffsetY;*/


        /********************************
        /*          Methods
        /********************************/

            /********************************
            /*          Accessors
            /********************************/

                /*! @brief Return the width of the Image    */
                int Width();

                /*! @brief Return the height of the Image Object    */
                int Height();

            /********************************
            /*          Members
            /********************************/
            void LoadImage(const char * filePath);

            void GenTexture();

            void BindTexture(GLuint programId);

        /********************************/
        /*      Virtual Methods         */
        /********************************/



    /********************************/
    /*          Constructor         */
    /********************************/

        Image();
        Image(const char * filePath);

    /********************************/
    /*          Static              */
    /********************************/

        /********************************/
        /*          Properties          */
        /********************************/



};

#endif
